/**
* 尊敬的用户，你好：页面 JS 面板是高阶用法，一般不建议普通用户使用，如需使用，请确定你具备研发背景，能够自我排查问题。当然，你也可以咨询身边的技术顾问或者联系宜搭平台的技术支持获得服务（可能收费）。
* 我们可以用 JS 面板来开发一些定制度高功能，比如：调用阿里云接口用来做图像识别、上报用户使用数据（如加载完成打点）等等。
* 你可以点击面板上方的 「使用帮助」了解。
*/

// 当页面渲染完毕后马上调用下面的函数，这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。
export function didMount() {
    console.log(`「页面 JS」：当前页面地址 ${location.href}`);
    // console.log(`「页面 JS」：当前页面 id 参数为 ${this.state.urlParams.id}`);
    // 更多 this 相关 API 请参考：https://www.yuque.com/yida/support/ocmxyv#OCEXd
    // document.title = window.loginUser.userName + ' | 宜搭';
}


/**
* employeeField onChange
* @param value 当前值
*/
export function onChange2({ value }) {
    console.log('onChange', value);
    if (value == "") {
        this.$("employeeField_l9c917eg").setBehavior('HIDDEN');
        this.$("dateField_l9c917eh").setBehavior('HIDDEN');
    }
    else {
        this.$("employeeField_l9c917eg").setBehavior('READONLY');
        this.$("dateField_l9c917eh").setBehavior('READONLY');
    }

}

/**
* selectField onChange
* @param value: {mixed} 选中的值
* @param actionType: {String} 触发的方式, 'itemClick', 'enter', 'change'
* @param item: {mixed} 选中的值的对象数据
*/
export function onChange({ value, actionType, item }) {
    if (value) {
        var selected = Array.from(this.state.contractSelection.data).find(t => t.contractId == value);
        if (this.$('radioField_l92cjldh').getValue() == '1') {
            this.$('cascadeDateField_l96iw2od').setValue({
                start: (new Date(selected.fromDate)).getTime(),
                end: (new Date(selected.toDate)).getTime()
            });
            var diff = (new Date((new Date()).toDateString()) - new Date(selected.toDate)) / (1 * 24 * 60 * 60 * 1000);

            this.$('dateField_l9dxuy7q').setValue(new Date(selected.toDate));

            this.$('textField_l9dxuy7r').setValue(diff < 0 ? 0 : diff);
        }
        console.log(selected);
        this.$('textField_l92cjldj').setValue(selected.custName);
        this.$('textField_lj42akbn').setValue(selected.hrmCompanyId);
        this.getContractContact(selected.hrmCompanyId);

        // var dataSource= this.$('selectField_l92cjldi').get("dataSource");

        // console.log(dataSource);

        this.searchFormDatas(selected.contractId)
    }
    //console.log('onChange', value);
}

/**
* selectField onSearch
* @param value: {String} 数据
*/
export function onSearch(keyword) {
    console.log('onSearch', keyword);
    if (this.state.debounceTimer) {
        clearTimeout(this.state.debounceTimer);
    };
    // 注意防抖，防抖案例：https://www.aliwork.com/o/coc?tplUuid=TPL_EV117QZ9KD6EK0334JNU&from=yuque_subject
    const debounceTimer = setTimeout(() => {
        console.log('onSearch', keyword);
        const params = {
            "Headers": {
                "Content-Type": "application/json"
            },
            "Path": {
                "no": keyword,
                "take": "10",
                "status": this.$('radioField_l92cjldh').getValue()
            }
        };

        this.dataSourceMap['getcontract'].load({
            inputs: JSON.stringify(params)
        }).then((content) => {
            //console.log(content);
            if (content != null && content.data != null) {
                this.state.contractSelection = content;
                var selectOptions = [];
                content.data.forEach(t => {
                    var tmp = t.contractId;

                    var option = {
                        text: tmp,
                        value: tmp,
                    }
                    selectOptions.push(option);
                });
                //赋值下拉框
                this.$('selectField_lj42akbo').set("dataSource", selectOptions)
            }
        });


        this.setState({
            debounceTimer: null,
        });
    }, 300);
    this.setState({
        debounceTimer,
    });
}

/**
* radioField onChange
* @param value 被选中的选项的值
*/
export function onTypeChange({ value }) {
    this.$('selectField_lj42akbo').reset();
    this.$('selectField_lj42akbo').set("dataSource", []);
    this.state.contractSelection = [];
    this.$('textField_l9dxuy7r').setValue(0);
    this.$('numberField_lj42akbp').setValue(0);
}



export function searchFormDatas(contractId) {
    var params = {
        "textField_lj41nupi": contractId,
        "textField_lj41nupo": "同意"
    }
    this.dataSourceMap.searchFormDatas.load({
        "searchFieldJson": JSON.stringify(params)
    }).then((content) => {
        // debugger;
        // console.log(content);
        var count = content.data.length;
        this.$('numberField_lj42akbp').setValue(count);
    });
}


export function getContractContact(hrmCompanyId) {
    var params = {
        "textField_lj41hp9y": hrmCompanyId
    }
    this.dataSourceMap.getContractContact.load({
        "searchFieldJson": JSON.stringify(params)
    }).then((content) => {
        var count = content.data.length;
        if (count > 0) {
            var empid = content.data[0].formData.employeeField_lj41hp9z_id;
            var empName = content.data[0].formData.employeeField_lj41hp9z;
            this.$('employeeField_l9fa2j2o').setValue([{
                "value": empid[0],
                "label": empName[0]
            }]);
        }
        // this.$('numberField_lii8am8x').setValue(count);
    });
}